package com.jcfk.eam.domain.dto.main;


import java.util.ArrayList;
import java.util.List;

import com.jcfk.eam.domain.dto.base.EamRepairOrderFileDTO;
import com.jcfk.system.domain.dto.BaseDTO;
import org.hibernate.validator.constraints.Length;
import lombok.Data;

import java.util.Date;

/**
 * 巡检计划
 *
 * @author awei
 * @email 522891237@gqq.com
 * @date 2024-09-24
 */
@Data
public class EamInspectionPlanDTO extends BaseDTO {

    private static final long serialVersionUID = 1L;

    /**
     * 数据版本号
     */
    private Long version;

    /**
     * 资产大类
     */
    private Integer assetKind;

    /**
     * 计划编号
     */
    @Length(max = 32, message = "计划编号长度不能超过32")
    private String planNo;

    /**
     * 计划名称
     */
    @Length(max = 50, message = "计划名称长度不能超过50")
    private String planName;

    /**
     * 标准作业类型
     */
    @Length(max = 32, message = "标准作业类型长度不能超过32")
    private String sopTypeId;

    /**
     * 标准作业类型编号
     */
    @Length(max = 32, message = "标准作业类型编号")
    private String sopTypeCode;

    /**
     * 标准作业类型
     */
    private String sopTypeName;

    /**
     * 巡检周期
     */
    private Integer taskPeriod;

    /**
     * 巡检周期单位
     */
    private Integer taskPeriodUnit;

    /**
     * 巡检提醒时间
     */
    private Integer taskRemindTime;

    /**
     * 提醒时间单位
     */
    private Integer remindTimeUnit;

    /**
     * 资产管理部门主键
     */
    @Length(max = 32, message = "资产管理部门主键长度不能超过32")
    private String assetDepartmentId;

    /**
     * 资产管理部门
     */
    @Length(max = 50, message = "资产管理部门长度不能超过50")
    private String assetDepartmentName;

    /**
     * 计划起始日期
     */
    private Date planStartDate;

    /**
     * 计划截止日期
     */
    private Date planEndDate;

    /**
     * 计划巡检时间
     */
    private Integer planInspectionTime;

    /**
     * 巡检执行部门主键
     */
    @Length(max = 32, message = "巡检执行部门主键长度不能超过32")
    private String executeDepartmentId;

    /**
     * 巡检执行部门
     */
    @Length(max = 50, message = "巡检执行部门长度不能超过50")
    private String executeDepartmentName;

    /**
     * 巡检执行班组主键
     */
    @Length(max = 32, message = "巡检执行班组主键长度不能超过32")
    private String executeTeamId;

    /**
     * 巡检执行班组
     */
    @Length(max = 50, message = "巡检执行班组长度不能超过50")
    private String executeTeamName;

    /**
     * 是否停用
     */
    private Integer enabled;

    /**
     * 巡检路线主键
     */
    @Length(max = 32, message = "巡检路线主键长度不能超过32")
    private String inspectionRouteId;

    /**
     * 巡检线路名称
     */
    private String inspectionRouteName;

    /**
     * 组织机构主键
     */
    @Length(max = 32, message = "组织机构主键长度不能超过32")
    private String organizationId;

    /**
     * 备注
     */
    @Length(max = 255, message = "备注长度不能超过255")
    private String remarks;

    /**
     * 创建人
     */
    @Length(max = 50, message = "创建人长度不能超过50")
    private String createdUserName;

    /**
     * 更新人
     */
    @Length(max = 50, message = "更新人长度不能超过50")
    private String lastUpdatedUserName;


    /**
     * 批量添加子表
     */
    private List<EamTaskPlanEquDTO> details = new ArrayList<>();

    private List<EamInspectionPlanTeamDTO> inspectionPlanTeams = new ArrayList<>();

    private List<EamInspectionPlanPersonDTO> persons = new ArrayList<>();

    private List<EamInspectionPlanLocationDTO> locations = new ArrayList<>();

    private List<EamTaskPlanAttachDTO> assetPhotos = new ArrayList<>();

    /**
     * 作业类别
     */
    private Integer taskKind;

    /**
     * 批量删除id
     */
    private List<String> ids;

}
